;(function($){
	
	window.ResAdd = (function(){
		var tags = [];
	
		function _onReady(){
			$.spur.onReady();
		}
	
		function _doAddRes(data){
			if(data.msg == 'OK'){
				var msgArea = '<div id="message-area" class="message-success">感谢您的提交，为了确保资源内容和教育技术相关，资源内容会被审核，请等待批准</div>';
				$('#main-content').html(msgArea);
			}else{
				var errors = data.errors;
				_handleError(errors);
			}
		}
		
		/**
		 * errors是json格式
		 * [{
		 *      name : 'name',
		 *      displayName : '名称',
		 *      errorMsg : 'errorMsg'
		 *  }
		 * ]
		 * 根据errors对象构建html元素，显示错误
		 */
		function _handleError(errors){
			if(errors.length == 0){
				return;
			}
			var $msgArea = $('#message-area');
			$msgArea.empty().removeClass('hidden');
			$.each(errors, function(i, error){
				$('<img src="/media/images/status-red.gif" align="absmiddle" />' + error.errorMsg + '<br/>').appendTo($msgArea);
			});
		}
		
		function _initAddEntry(){
			var $form = $('#add-resource-form');
		    var options = {
      			beforeSubmit: function(formArray, jqForm, options) {
      				$('#message-area').addClass('hidden');
      				var errors = [];
      				//表单验证，如果验证失败，返回false，则表单不会提交
      				$.each(formArray, function(i, ele){
      					var $msg = $('#' + ele.name + '-msg');
      					if($msg.length > 0 && ele.value == ''){
      						errors.push({'errorMsg' : $msg.html()});
      					}
      					
      					if(ele.name == 'tags'){
      						ele.value = ele.value.replace(/(^\s*)|(\s*$)/g, "").replace(/ /g, "-").replace(/，/g, ",").replace(/,-/g, ",");
      					}
      				});
      				if(errors.length > 0){
      					_handleError(errors);
      					return false;
      				}else{
      					$.ui.indicator.showTop();
      					return true;
      				}
      			},
      			dataType : 'json',
      			success : function(data){
      				$.ui.indicator.hideTop();
      				if(data.msg == 'OK'){
      					_doAddRes(data);
      				}else{
      					//返回json格式的错误
      					_handleError(data.errors);
      				}
      			}
  			};
  			
  			$form.ajaxForm(options);
		}
		
		function _fillTagsData(){
			var tagsArr = $('#tags-str').html().split(',');
			
			$.each(tagsArr, function(i, tagName){
				tags.push($.trim(tagName));
			});
			
		}
		
		function _initAutoComplete(){
			$('#tags-input').autocomplete(tags);
		}
		
		return {
		    onReady : function(){
		    	_onReady();
		    	_fillTagsData();
		    	_initAddEntry();
		    	_initAutoComplete();
		    }
		    
		}
	})();
	
	$(document).ready(
   		function(){
   			window.ResAdd.onReady();
   		}
   	);
	
})(jQuery)